// ## Implementation preserve start class opening. 
// ## Implementation preserve end class opening. 
import User;
import Package;
import Compound;
import Pathway;
import Rule;
// ## Implementation preserve start class import. 
// ## Implementation preserve end class import. 

public class Database_Abstract
// ## Implementation preserve start class extends. 
// ## Implementation preserve end class extends. 

// ## Implementation preserve start class inheritence. 
// ## Implementation preserve end class inheritence. 

{
    /** Attributes */
    public User databaseUser;
    // ## Implementation preserve start class attributes. 
    // ## Implementation preserve end class attributes. 
    // ## Implementation preserve start class associations. 
    // ## Implementation preserve end class associations. 
    /**
     * Operation
     *
     * @return User
     */
    public User getUserData (  )
    {
        // ## Implementation preserve start class method.getUserData@User@@ 
        // ## Implementation preserve end class method.getUserData@User@@ 
    }
    /**
     * Operation
     *
     * @param userData
     * @return boolean
     */
    public boolean setUserData ( String[] userData )
    {
        // ## Implementation preserve start class method.setUserData@boolean@@@String[] 
        // ## Implementation preserve end class method.setUserData@boolean@@@String[] 
    }
    /**
     * Operation
     *
     * @param packageID
     * @return Package
     */
    public Package getPackage ( int packageID )
    {
        // ## Implementation preserve start class method.getPackage@Package@@@int 
        // ## Implementation preserve end class method.getPackage@Package@@@int 
    }
    /**
     * Operation
     *
     * @param packageData
     * @param packageID
     * @return boolean
     */
    public boolean modifyPackage ( String[] packageData, int packageID )
    {
        // ## Implementation preserve start class method.modifyPackage@boolean@@@String[]@int 
        // ## Implementation preserve end class method.modifyPackage@boolean@@@String[]@int 
    }
    /**
     * Operation
     *
     * @param data
     * @param compoundID
     * @return boolean
     */
    public boolean modifyCompound ( String[] data, int compoundID )
    {
        // ## Implementation preserve start class method.modifyCompound@boolean@@@String[]@int 
        // ## Implementation preserve end class method.modifyCompound@boolean@@@String[]@int 
    }
    /**
     * Operation
     *
     * @param data
     * @return boolean
     */
    public boolean createCompound ( String[] data )
    {
        // ## Implementation preserve start class method.createCompound@boolean@@@String[] 
        // ## Implementation preserve end class method.createCompound@boolean@@@String[] 
    }
    /**
     * Operation
     *
     * @param CompoundID
     * @param compoundID
     * @return Compound
     */
    public Compound searchCompound ( int CompoundID, int compoundID )
    {
        // ## Implementation preserve start class method.searchCompound@Compound@@@int@int 
        // ## Implementation preserve end class method.searchCompound@Compound@@@int@int 
    }
    /**
     * Operation
     *
     * @param emailAddress
     * @param password
     * @return boolean
     */
    public boolean checkLogin ( String emailAddress, string password )
    {
        // ## Implementation preserve start class method.checkLogin@boolean@@@String@string 
        // ## Implementation preserve end class method.checkLogin@boolean@@@String@string 
    }
    /**
     * Operation
     *
     * @param smilesString
     * @return Pathway
     */
    public Pathway searchPathway ( string smilesString )
    {
        // ## Implementation preserve start class method.searchPathway@Pathway@@@string 
        // ## Implementation preserve end class method.searchPathway@Pathway@@@string 
    }
    /**
     * Operation
     *
     * @param packageData
     * @return booelan
     */
    public booelan createPackage ( String packageData )
    {
        // ## Implementation preserve start class method.createPackage@booelan@@@String 
        // ## Implementation preserve end class method.createPackage@booelan@@@String 
    }
    /**
     * Operation
     *
     * @param ruleID
     * @return Rule
     */
    public Rule searchRule ( int ruleID )
    {
        // ## Implementation preserve start class method.searchRule@Rule@@@int 
        // ## Implementation preserve end class method.searchRule@Rule@@@int 
    }
    /**
     * Operation
     *
     * @param ruleData
     * @return boolean
     */
    public boolean createRule ( String[] ruleData )
    {
        // ## Implementation preserve start class method.createRule@boolean@@@String[] 
        // ## Implementation preserve end class method.createRule@boolean@@@String[] 
    }
    /**
     * Operation
     *
     * @param ruleData
     * @param ruleID
     * @return boolean
     */
    public boolean modifyRule ( String[] ruleData, int ruleID )
    {
        // ## Implementation preserve start class method.modifyRule@boolean@@@String[]@int 
        // ## Implementation preserve end class method.modifyRule@boolean@@@String[]@int 
    }
    // ## Implementation preserve start class other.operations. 
    // ## Implementation preserve end class other.operations. 
}

// ## Implementation preserve start class closing. 
// ## Implementation preserve end class closing. 
